minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))
↳ QTRS
↳ DependencyPairsProof
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))
IF3(false, s1(X), s1(Y)) -> MINUS2(Y, X)
IF3(true, s1(X), s1(Y)) -> GCD2(minus2(X, Y), s1(Y))
IF3(false, s1(X), s1(Y)) -> GCD2(minus2(Y, X), s1(X))
MINUS2(X, s1(Y)) -> PRED1(minus2(X, Y))
LE2(s1(X), s1(Y)) -> LE2(X, Y)
GCD2(s1(X), s1(Y)) -> IF3(le2(Y, X), s1(X), s1(Y))
GCD2(s1(X), s1(Y)) -> LE2(Y, X)
IF3(true, s1(X), s1(Y)) -> MINUS2(X, Y)
MINUS2(X, s1(Y)) -> MINUS2(X, Y)
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
IF3(false, s1(X), s1(Y)) -> MINUS2(Y, X)
IF3(true, s1(X), s1(Y)) -> GCD2(minus2(X, Y), s1(Y))
IF3(false, s1(X), s1(Y)) -> GCD2(minus2(Y, X), s1(X))
MINUS2(X, s1(Y)) -> PRED1(minus2(X, Y))
LE2(s1(X), s1(Y)) -> LE2(X, Y)
GCD2(s1(X), s1(Y)) -> IF3(le2(Y, X), s1(X), s1(Y))
GCD2(s1(X), s1(Y)) -> LE2(Y, X)
IF3(true, s1(X), s1(Y)) -> MINUS2(X, Y)
MINUS2(X, s1(Y)) -> MINUS2(X, Y)
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ QDP
LE2(s1(X), s1(Y)) -> LE2(X, Y)
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
LE2(s1(X), s1(Y)) -> LE2(X, Y)
POL(LE2(x1, x2)) = x2
POL(s1(x1)) = 1 + x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
↳ QDP
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
MINUS2(X, s1(Y)) -> MINUS2(X, Y)
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
MINUS2(X, s1(Y)) -> MINUS2(X, Y)
POL(MINUS2(x1, x2)) = x2
POL(s1(x1)) = 1 + x1
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ PisEmptyProof
↳ QDP
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
IF3(true, s1(X), s1(Y)) -> GCD2(minus2(X, Y), s1(Y))
IF3(false, s1(X), s1(Y)) -> GCD2(minus2(Y, X), s1(X))
GCD2(s1(X), s1(Y)) -> IF3(le2(Y, X), s1(X), s1(Y))
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))
The following pairs can be oriented strictly and are deleted.
The remaining pairs can at least be oriented weakly.
GCD2(s1(X), s1(Y)) -> IF3(le2(Y, X), s1(X), s1(Y))
Used ordering: Polynomial interpretation [21]:
IF3(true, s1(X), s1(Y)) -> GCD2(minus2(X, Y), s1(Y))
IF3(false, s1(X), s1(Y)) -> GCD2(minus2(Y, X), s1(X))
POL(0) = 0
POL(GCD2(x1, x2)) = 1 + x1 + x2
POL(IF3(x1, x2, x3)) = x1 + x2 + x3
POL(false) = 0
POL(le2(x1, x2)) = 0
POL(minus2(x1, x2)) = x1
POL(pred1(x1)) = x1
POL(s1(x1)) = 1 + x1
POL(true) = 0
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
le2(0, Y) -> true
pred1(s1(X)) -> X
minus2(X, 0) -> X
le2(s1(X), 0) -> false
le2(s1(X), s1(Y)) -> le2(X, Y)
↳ QTRS
↳ DependencyPairsProof
↳ QDP
↳ DependencyGraphProof
↳ AND
↳ QDP
↳ QDP
↳ QDP
↳ QDPOrderProof
↳ QDP
↳ DependencyGraphProof
IF3(true, s1(X), s1(Y)) -> GCD2(minus2(X, Y), s1(Y))
IF3(false, s1(X), s1(Y)) -> GCD2(minus2(Y, X), s1(X))
minus2(X, s1(Y)) -> pred1(minus2(X, Y))
minus2(X, 0) -> X
pred1(s1(X)) -> X
le2(s1(X), s1(Y)) -> le2(X, Y)
le2(s1(X), 0) -> false
le2(0, Y) -> true
gcd2(0, Y) -> 0
gcd2(s1(X), 0) -> s1(X)
gcd2(s1(X), s1(Y)) -> if3(le2(Y, X), s1(X), s1(Y))
if3(true, s1(X), s1(Y)) -> gcd2(minus2(X, Y), s1(Y))
if3(false, s1(X), s1(Y)) -> gcd2(minus2(Y, X), s1(X))